In recent years, storage systems including first and second storage devices of different access speeds have been developed. The first storage device is a high speed small-capacity device and the second storage device is a low speed large-capacity device when compared with the first storage device. A storage system is realized by hierarchically combining the first storage device (hereinafter, referred to as a high speed storage device) and the second storage device (hereinafter, referred to as a low speed storage device). Thus, the storage system is also called a hierarchical storage system.
The storage system further includes a storage controller. The storage controller accesses the high speed storage device or the low speed storage device in accordance with a read request or write request from a host computer (hereinafter, referred to as a host). In general, a logical unit (that is, a logical volume) is managed by dividing data into a plurality of clusters of data having a predetermined size. Such clusters of data are called chunks. The logical unit refers to a storage area recognized by the host as a logical storage drive. Logical addresses of chunks used at least by the host of a set of chunks in the logical unit are mapped to physical addresses of physical storage areas of the high speed storage device or the low speed storage device. That is, chunks used by the host are mapped to the high speed storage device or the low speed storage device.
The storage controller monitors an access condition to each chunk. As the index showing the access condition, access statistic information is generally used. The access statistic information is typified by the access frequency (frequency of use) or the total sum of data access amounts for each chunk in a predetermined period (monitoring period).
The storage controller selects chunks that need high speed access based on the access condition (access statistic information) of each chunk to which a physical storage area of the low speed storage device is allocated. That is, the storage controller selects a chunk of high access frequency or a chunk of a large access data amount as a chunk that needs high speed access. Such an access condition of a chunk that needs high speed access is called a first condition.
It is assumed here that the first chunk is selected based on the access condition of each chunk in a first monitoring period. It is also assumed that the first logical address of the first chunk is mapped to the first physical address of the first physical storage area of the low speed storage device.
In this case, the storage controller changes a mapping state of the first chunk as described below in order to realize high speed access to the first chunk. That is, the storage controller remaps the first logical address of the first chunk to the second physical address of the second physical storage area of the high speed storage device. In other words, the storage controller changes the mapping destination of the first chunk from the low speed storage device to the high speed storage device. At the same time, the storage controller migrates data in the first physical storage area to the second physical storage area and then releases the first physical storage area. Hereinafter, when access to the first chunk is requested by the host, the storage controller accesses the second physical storage area. Accordingly, an access request to the first chunk (that is, an access request to a chunk of high access frequency or a chunk of a large access data amount) can be executed faster than before remapping.
In addition, the storage controller selects a chunk that does not need high speed access based on the access condition (access statistic information) of each chunk to which a physical storage area of the high speed storage device is allocated. That is, the storage controller selects a chunk of low access frequency or a chunk of a small access data amount as a chunk that does not need high speed access. Such an access condition of a chunk that does not need high speed access is called a second condition.
It is assumed here that after the first chunk is remapped to the high speed storage device, the access condition of the first chunk changes from the second condition to the first condition in a second monitoring period succeeding the first monitoring period. In this case, the storage controller acquires a third physical storage area of the low speed storage device and changes the mapping destination of the first chunk to the low speed storage device again. At the same time, the storage controller migrates data in the second physical storage area to the third physical storage area and then releases the second physical storage area. Hereinafter, when access to the first chunk is requested by the host, the storage controller accesses the third physical storage area.
As described above, the chunk to be remapped is selected each time the monitoring period passes. However, the access condition to the second chunk in the first monitoring period is not necessarily the same in the subsequent second monitoring period. It is assumed, for example, that the access condition to the second chunk is near the boundary between the first condition and the second condition. The possibility of frequent remapping is high for such a second chunk. That is, it is highly probable that the mapping state of the second chunk is frequently changed and data migration from the low speed storage device to the high speed storage device and data migration from the high speed storage device to the low speed storage device frequently occur. Such a phenomenon is called the vibration of state transition.
If the access condition of the third chunk that is normally in the second condition changes to the first condition in a single monitoring period only, the transition of the mapping state described below also occurs. That is, a case in which the third chunk is temporarily mapped to the high speed storage device (more specifically, to a physical storage area of the high speed storage device) and then mapped to the low speed storage device again occurs. Conversely, if the access condition of the fourth chunk that is normally in the first condition changes to the second condition in a single monitoring period only, the transition of the mapping state described below also occurs. That is, a case which the fourth chunk is temporarily mapped to the low speed storage device and then mapped to the high speed storage device again occurs. It is difficult for the storage controller to predict such cases.
When the transition of the mapping state occurs, migration of data as described above occurs. That is, migration of data from the low speed storage device to the high speed storage device or migration of data from the high speed storage device to the low speed storage device occurs for the entire chunk where the transition of the mapping state should occur. The migration of data to the high speed storage device accompanied by data reading from the low speed storage device and the migration of data to the low speed storage device is accompanied by data writing to the low speed storage device. Therefore, if the number of target chunks in a mapping state change process executed for each monitoring period increases, a great deal of time will be needed to access the low speed storage device, leading to a longer processing time as a whole.